package pe.gob.osce.sirenas.dao.convert;



import java.util.ArrayList;
import java.util.List;

import pe.gob.osce.sirenas.model.BusquedaFiscalizacionDTO;
import pe.gob.osce.sirenas.model.FiscalizacionDTO;
import pe.gob.osce.sirenas.model.jpa.Auditoria;
import pe.gob.osce.sirenas.model.jpa.FichaArbitral;
import pe.gob.osce.sirenas.model.jpa.Fiscalizacion;
import pe.gob.osce.sirenas.model.jpa.Persona;

public class FiscalizacionConvert {

	public FiscalizacionConvert(){}
	
	public static Fiscalizacion createJPA(FiscalizacionDTO fiscalizacionDTO, Auditoria auditoria)
	{
		Fiscalizacion objetoJPA= new Fiscalizacion();
		
		objetoJPA.setIdFiscalizacion(fiscalizacionDTO.getIdFiscalizacion());
		objetoJPA.setIdFicha(fiscalizacionDTO.getIdFicha());
		objetoJPA.setTipoResultado(fiscalizacionDTO.getTipoResultado());
		objetoJPA.setResumen( fiscalizacionDTO.getResumen());
		objetoJPA.setDocumentoPDF( fiscalizacionDTO.getDocumentoPDF());
		objetoJPA.setNumDocumento( fiscalizacionDTO.getNumDocumento());
		objetoJPA.setExpFiscalizacion(fiscalizacionDTO.getExpFiscalizacion());
		
		objetoJPA.setIdEstadoProceso(fiscalizacionDTO.getIdEstadoProceso());
		objetoJPA.setFecInicio(fiscalizacionDTO.getFecInicio());
		objetoJPA.setUsuarioInicio(fiscalizacionDTO.getUsuarioInicio());
		objetoJPA.setFecCierre(fiscalizacionDTO.getFecCierre());
		objetoJPA.setUsuarioCierre(fiscalizacionDTO.getUsuarioCierre());
		objetoJPA.setEstado(fiscalizacionDTO.getEstado());
		objetoJPA.setAuditoria(auditoria);
	
		return objetoJPA;
	}
	public static FiscalizacionDTO createDTO(Fiscalizacion fiscalizacionJPA){
		FiscalizacionDTO objetoDTO= new FiscalizacionDTO();
		
		objetoDTO.setIdFiscalizacion(fiscalizacionJPA.getIdFiscalizacion());
		objetoDTO.setIdFicha(fiscalizacionJPA.getIdFicha());
		objetoDTO.setTipoResultado(fiscalizacionJPA.getTipoResultado());
		objetoDTO.setResumen( fiscalizacionJPA.getResumen());
		objetoDTO.setDocumentoPDF( fiscalizacionJPA.getDocumentoPDF());
		objetoDTO.setNumDocumento( fiscalizacionJPA.getNumDocumento());
		objetoDTO.setExpFiscalizacion(fiscalizacionJPA.getExpFiscalizacion());
		objetoDTO.setIdEstadoProceso(fiscalizacionJPA.getIdEstadoProceso());
		objetoDTO.setFecInicio(fiscalizacionJPA.getFecInicio());
		objetoDTO.setUsuarioInicio(fiscalizacionJPA.getUsuarioInicio());
		objetoDTO.setFecCierre(fiscalizacionJPA.getFecCierre());
		objetoDTO.setUsuarioCierre(fiscalizacionJPA.getUsuarioCierre());
		objetoDTO.setEstado(fiscalizacionJPA.getEstado());
		
		return objetoDTO;
	}

	public static List<FiscalizacionDTO> createListaDTO(List<Fiscalizacion> listaFiscalizacionJPA){
		List<FiscalizacionDTO> listaFiscalizacionDTO=new ArrayList<FiscalizacionDTO>();
		FiscalizacionDTO objetoDTO;
		
		for (Fiscalizacion fiscalizacionJPA : listaFiscalizacionJPA) {
			objetoDTO= new FiscalizacionDTO();
			objetoDTO.setIdFiscalizacion(fiscalizacionJPA.getIdFiscalizacion());
			objetoDTO.setIdFicha(fiscalizacionJPA.getIdFicha());
			objetoDTO.setTipoResultado(fiscalizacionJPA.getTipoResultado());
			objetoDTO.setResumen( fiscalizacionJPA.getResumen());
			objetoDTO.setDocumentoPDF( fiscalizacionJPA.getDocumentoPDF());
			objetoDTO.setNumDocumento( fiscalizacionJPA.getNumDocumento());
			objetoDTO.setExpFiscalizacion(fiscalizacionJPA.getExpFiscalizacion());
			objetoDTO.setIdEstadoProceso(fiscalizacionJPA.getIdEstadoProceso());
			objetoDTO.setFecInicio(fiscalizacionJPA.getFecInicio());
			objetoDTO.setUsuarioInicio(fiscalizacionJPA.getUsuarioInicio());
			objetoDTO.setFecCierre(fiscalizacionJPA.getFecCierre());
			objetoDTO.setUsuarioCierre(fiscalizacionJPA.getUsuarioCierre());
			objetoDTO.setEstado(fiscalizacionJPA.getEstado());		
			listaFiscalizacionDTO.add(objetoDTO);
		}
		
		return listaFiscalizacionDTO;
	}
	
	public static List<BusquedaFiscalizacionDTO> obtenerBusquedaFiscalizacionesDTO(List<Fiscalizacion> listaFiscalizacion){
		List<BusquedaFiscalizacionDTO> listaBusquedaFiscalizacionesDTO= new ArrayList<BusquedaFiscalizacionDTO>();
		BusquedaFiscalizacionDTO fiscalizacionDTO;
		
		for (Fiscalizacion fiscalizacion : listaFiscalizacion) {
			fiscalizacionDTO=new BusquedaFiscalizacionDTO();
			fiscalizacionDTO.setIdFicha(fiscalizacion.getFichaArbitral().getIdFicha() );
			fiscalizacionDTO.setNombres(fiscalizacion.getFichaArbitral().getPersona().getNombres() );
			fiscalizacionDTO.setApPaterno(fiscalizacion.getFichaArbitral().getPersona().getApPaterno() );
			fiscalizacionDTO.setApMaterno(fiscalizacion.getFichaArbitral().getPersona().getApMaterno() );
			fiscalizacionDTO.setIndTipoDocumento(fiscalizacion.getFichaArbitral().getPersona().getIndTipoDocumento().longValue() );
			fiscalizacionDTO.setNumDocumento(fiscalizacion.getFichaArbitral().getPersona().getNumDocumento() );
			fiscalizacionDTO.setNumRuc(fiscalizacion.getFichaArbitral().getPersona().getNumRuc() );
			fiscalizacionDTO.setTipoFicha(fiscalizacion.getFichaArbitral().getTipoFicha() );
			fiscalizacionDTO.setFecRegistro(fiscalizacion.getAuditoria().getFechaRegistro() );
			fiscalizacionDTO.setIdEstadoProceso( fiscalizacion.getIdEstadoProceso());
		}
		return listaBusquedaFiscalizacionesDTO;
	}
	
	public static BusquedaFiscalizacionDTO createBusquedaFiscalizacionDTO(Fiscalizacion fiscalizacion,FichaArbitral fichaArbitral,Persona persona){
		BusquedaFiscalizacionDTO registroDTO=new  BusquedaFiscalizacionDTO();
		registroDTO.setIdEstadoProceso(fiscalizacion.getIdEstadoProceso()); 
		registroDTO.setIdFicha(fiscalizacion.getIdFicha() ); 
		registroDTO.setIdEstadoProceso(fiscalizacion.getIdEstadoProceso() ); 
		registroDTO.setCodBloque(fiscalizacion.getCodigoBloque() ); 
		registroDTO.setTipoFicha(fichaArbitral.getTipoFicha() ); 
		registroDTO.setIdPersona(fichaArbitral.getIdPersona() ); 
		registroDTO.setApPaterno(persona.getApPaterno() ); 
		registroDTO.setApMaterno(persona.getApMaterno() );
		registroDTO.setNombres(persona.getNombres() ); 
		registroDTO.setNombreCompleto(persona.getNombres()+" "+persona.getApPaterno()+" "+persona.getApMaterno() );
		registroDTO.setIndTipoDocumento(persona.getIndTipoDocumento().longValue() ); 
		registroDTO.setNumDocumento(persona.getNumDocumento() ); 
		registroDTO.setNumRuc(persona.getNumRuc() ); 
		registroDTO.setFecRegistro(fiscalizacion.getAuditoria().getFechaRegistro() );
		
		return registroDTO;
	}
}
